home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 3
/
Cream of the Crop 3.iso
/
editor
/
me141.zip
/
ME.DOC
next >
Wrap
Text File
|
1993-11-03
|
34KB
|
754 lines
MaD-Edit Programmeditor
=======================
Geschrieben 1988-1993 von DL6DCM, Dipl.-Ing. Martin Doppelbauer unter
Verwendung von Turbo-C 2.0. MaD-Edit ist Freeware, d.h. die kostenlose
Weitergabe ist erlaubt (und erwünscht!).
1. Einführung
MaD-Edit ist ein allgemeinverwendbarer Full-Screen Text und Hex-Edi-
tor, entworfen speziell zur Programmentwicklung, Eingabe von Batch-
Dateien, Lesen von READMEs usw.. Also für alle Aufgaben, bei denen die
Benutzung eines großen Textprogrammes zu umständlich wäre.
Außerdem verfügt ME über einen speziellen Hex-Modus. Damit können auch
alle nicht-Textdateien sehr komfortabel bearbeitet werden.
Alle Kommandos von MaD-Edit sind darauf abgestellt, dem Benutzer
maximalen Komfort bei minimalem Aufwand (=Tastendrücke) zu geben. Daher
wurde von vorneherein nicht versucht, die umständlichen Wordstar kompa-
tiblen Befehle einzubauen. Vielmehr orientiert sich die Syntax am SEE
Editor des DeSmet C Development Package (bzw. dem AEDIT von Intel).
Außerdem wurde besonders auf eine hohe Geschwindigkeit geachtet. Das be-
trifft alle Belange des Editors, neben Lade- und Speicheroperationen
insbesondere auch die Suchfunktion.
Das Durchsuchen eines 400 KByte Textes unter vergleichbaren Bedingungen
dauerte z.B. bei Wordstar (3.4) 45 Sekunden, mit Word (4.0) 20 Sekunden
und mit MaD-Edit 2 Sekunden !
MaD-Edit ist in der Lage bis zu drei Dateien gleichzeitig zu bearbei-
ten. Textblöcke können auf einfachste Art zwischen den Texten ausge-
tauscht werden.
Durch die Makrofunktion besteht die Möglichkeit, eine Reihe von Tasten-
drücken zu speichern, und später über eine Funktionstaste abzurufen.
Auf EGA und VGA Bildschirmen kann wahlweise mit einer höheren Auflösung
gearbeitet werden.
Die Editor-Konfiguration wird auf Wunsch automatisch abgespeichert, so
daß bei erneutem Aufruf alle Textdateien automatisch geladen werden.
Mehr noch, auch alle Sprungziele und die Makros werden restauriert. So-
gar der Cursor steht an genau derselben Stelle des Bildschirms wie beim
Verlassen des Editors.
Schließlich können aus dem Editor heraus bis zu drei Programme nachein-
ander aufgerufen werden. Dies ist besonders praktisch beim Compilieren,
Linken und Austesten eines Anwenderprogramms. MaD-Edit selbst belegt
während dessen nur ca. 40 KByte Speicher. Bei Compiler- oder Linkerfeh-
lern wird der Editor sofort wieder aktiviert, d.h. ohne das Anwenderpro-
gramm auszuführen.
MaD-Edit ist bezüglich der Befehlseingabe teilweise kompatibel zu SEE
aus dem DeSmet C Development Package (Vers. 2.5).
Geschrieben wurde MaD-Edit übrigens in Turbo-C 2.0 .
MaD-Edit läuft auf allen IBM-AT/386/486/586 kompatiblen Rechnern mit
mindestens 256 KB RAM. Alle gängigen Videokarten werden unterstützt.
Das Programm benutzt einige 286 spezifische Maschinenbefehle, läuft also
nicht mehr auf IBM-PC oder XT Systemen.
2. Das Konzept
MaD-Edit arbeitet nicht direkt mit einem Text auf Platte. Vielmehr
wird eine Kopie des Textes in den Arbeitsspeicher geladen, und alle wei-
teren Aktionen passieren dort. Der Text auf der Platte wird nicht verän-
dert bevor die Kopie im Arbeitsspeicher zurückgeschrieben wird.
Texte mit größerer Kapazität als der Arbeitsspeicher können nicht bear-
beitet werden, allerdings stehen auf einem 640 KB System immerhin über
450 KB für den Text zur Verfügung (zuzüglich 30 KByte Copy-Buffer) - das
sollte reichen!
MaD-Edit kennt nur drei Steuerzeichen: TAB (HEX 09) und die CRLF Kom-
bination (HEX 0D0A). Diese Zeichen sind die einzigen, welche der Editor
nicht als Text verarbeiten kann. Alle übrigen 253 Bytes dürfen einge-
geben bzw. als Text benutzt werden. Auch Unix-Textdateien, welche ledig-
lich ein einzelnes LF(0A) als Zeilentrennung benutzen, können bearbeitet
werden. Beim Ausdruck setzt ME das einzelne LF in eine CR LF Kombination
um, so daß ein normal konfigurierter PC-Drucker damit zurechtkommt.
Befehle werden im Editor ausgeführt, indem man ihren ersten Buchstaben
tippt. Jeder Befehl hat einen zugeordneten Buchstaben. Alle vorhandenen
Befehle erscheinen zur Erinnerung in der obersten Zeile des Bildschirms.
Um zum Beispiel den 'Delete' Befehl auszuführen muß einfach der Buch-
stabe <D> getippt werden (Groß - Kleinschreibung spielt dabei keine
Rolle).
Immer wenn ein Textblock mit dem 'Delete'-Befehl gelöscht wird, wandert
er in ein bestimmtes Gebiet, den Copy-Buffer. Textblöcke die mit dem
'Buffer'-Befehl markiert werden, stehen danach ebenfalls im Copy-Buffer.
Wenn der 'Copy'-Befehl benutzt wird, fügt MaD-Edit den Inhalt des
Copy-Buffers an der aktuellen Cursorposition in den Text ein. Der Copy-
Buffer bleibt erhalten solange der Editor läuft. Er wird von allen (bis
zu drei) Dateien gleichermaßen benutzt. Dies ist der Mechanismus um Text
von einer Datei zur anderen zu transferrieren, oder um Text in einer Da-
tei zu verschieben.
Der Cursor zeigt den Platz, an dem alle Aktionen passieren. Er kann in
einem von drei Zuständen sein: zweizeilig (Kommando-Modus), dreizeilig
(Insert-Modus) oder fünfzeilig (Exchange-Modus). Der Cursor ist immer
auf dem Bildschirm sichtbar. Wenn er an den Rand des Bildschirms bewegt
wird, rollt der Text entsprechend. Dies geschieht sowohl vertikal, als
auch horizontal.
MaD-Edit kennt keinerlei Beschränkungen bezüglich der Zeilenlänge. Am
Ende einer Zeile ist jeweils die Return-Taste zu drücken.
3. Starten des Editors
Um den Editor mit einem neuen Text zu starten, gibt man auf der DOS-
Ebene lediglich:
ME Datei
ein. Um mehrere Dateien gleichzeitig zu bearbeiten (bis zu drei), sind
diese beim Start der Reihe nach anzugeben:
ME Datei1 Datei2 Datei3
Wildcards (*) sind ebenfalls erlaubt. So lädt "ME *.TXT" beispielsweise
die ersten drei Textdateien im aktuellen Unterverzeichnis in den Editor.
Falls der 'Save-Setup' Modus eingeschaltet ist, merkt sich MaD-Edit
beim Verlassen alle benutzen Dateien, den Cursorstandort und anderes.
Dann kann durch einfache Eingabe von
ME
der jeweils letzte Editorstatus wieder restauriert werden. Übrigens
braucht bei einer Textdatei keine Extension angegeben zu werden, wenn
sie vom Typ ".C", ".H", ".ASM", ".BAT", ".FOR", ".PRG", ".PAS", ".SYS",
".BAS", ".TXT", ".ME", ".DAT" oder ".DOC" ist.
Lediglich bei Mehrdeutigkeiten ist dann noch die Extension erforderlich.
Beispiel: Um die MS-DOS Konfigurationsdateien zu bearbeiten reicht :
ME CONFIG AUTOEXEC
im Hauptverzeichnis des Laufwerks C als Eingabe völlig aus.
Nach dem Laden meldet sich MaD-Edit im Kommandomodus. Die obersten
beiden Bildschirmzeilen sind grundsätzlich für Meldungen des Editors be-
stimmt, der Rest steht für den Text zur Verfügung.
Im Kommandomodus wird in der obersten Bildschirmzeile zur Erinnerung
eine Befehlsliste gezeigt. Es gibt drei solche Zeilen, sie können mit
der Taste <SPACE> umgeschaltet werden. Die Benutzung der Befehle ist un-
abhängig von der angezeigten Zeile.
Insert Xchange Buffer Delete Copy Find -find Replace Again -space-
oder:
Load Write Get Put Quit Tag Jump Setup Other Half Makro -space-
oder:
priNt Execute dUal ? # () <TAB> -space-
In der zweiten Bildschirmzeile wird Name und Größe des bearbeiteten Tex-
tes sowie die Cursorspalte angezeigt, z.B.:
- 3- 123 <ME.c> 33523 Bytes
Der Cursor befindet sich in Spalte 3 ('- 3-').
Die Zahl direkt nach den '- 3-' Zeichen ist ein Zähler, der im Komman-
domodus eingeben werden kann. Seine Bedeutung wird weiter unten erläu-
tert. In spitzen Klammern wird der Name des bearbeiteten Textes gezeigt.
Ein Befehl wird durch Eingabe seines Anfangsbuchstabens aufgerufen, und
zwar auch dann, wenn er in der gerade nicht gezeigten Befehlsliste
steht. Ob die Eingabe in Groß- oder Kleinbuchstaben erfolgt spielt keine
Rolle.
In der zweiten Zeile des Bildschirms werden unterschiedliche Statusan-
zeigen und Texte der verschiedenen Kommandos angezeigt.
4. Eingabe und Änderung von Text
Um Text einzugeben muß der Insert-Modus aufgerufen werden. Dies kann
durch Eingabe des Befehls <I>, oder durch Drücken der <INS> Taste ge-
schehen. Die Befehlsliste verschwindet jetzt, und es wird eine typische
Kommandozeile angezeigt. In ihr stehen kurz zusammengefasst alle mögli-
chen Aktionen, die nun ausgeführt werden können:
Insert: <Cursor keys> , <ESC> to exit , <INS> for Exchange
Sie können jetzt also entweder die Cursortasten verwenden, den Insert-
Modus mit <ESC> verlassen, oder mit <INS> den Exchange-Modus aufrufen.
Natürlich darf auch Text eingegeben werden.
Die Tastenkombination ^<C> oder ^<SCROLL LOCK> bricht übrigens grund-
sätzlich alle Befehle ab (das Zeichen ^ steht für die <CTRL> Taste).
Der Exchange-Modus arbeitet ähnlich wie der Insert-Modus, lediglich wird
der bestehende Text hier von neu eingegebenen Zeichen überschrieben. Mit
der Taste <INS> kann jeweils zwischen Insert und Exchange-Modus gewech-
selt werden.
5. Die Tastatur
5.1 Cursorbewegungen
<HOME> Der Cursor bewegt sich zum Anfang der aktuellen Zeile.
^<HOME> Der Cursor bewegt sich zur obersten Bildschirmzeile in
die erste Spalte.
<END> Der Cursor geht zum Ende der aktuellen Zeile
^<END> Der Cursor geht zum Anfang der letzten Zeile auf dem
Bildschirm.
<PGUP> Der Cursor wird um 20 Zeilen nach oben verschoben
^<PGUP> Der Cursor geht zum Textanfang
<PGDN> Der Cursor wird um 20 Zeilen nach unten verschoben
^<PGDN> Der Cursor geht zum Textende
<Pfeiltasten> Der Cursor wird in die entsprechende Richtung ver-
schoben. Dabei wird der Text auf dem Bildschirm
gescrollt, falls dies nötig sein sollte.
^<Pf links> Der Cursor geht zum Ende des vorigen Wortes
^<Pf rechts> Der Cursor geht zum Anfang des nächsten Wortes
5.2 Editiertasten
<BS> Die Backspace-Taste löscht das Zeichen links vom
Cursor. Der Rest der Zeile rückt entsprechend nach.
Durch das Löschen einer CRLF Kombination (bzw. eines
einzelnen LF in Unix Dateien) werden zwei Zeilen zu
einer zusammengefügt.
<DEL> Das Zeichen unter dem Cursor wird gelöscht. Wenn
dies eine CRLF Kombination sein sollte, werden auch hier
zwei Zeilen zusammengefügt.
<INS> Die <INS> Taste wird benutzt, um zwischen Insert- und
Exchange-Modus umzuschalten.
<F1> - <F10> Die zehn Funktionstasten stehen für Makros zur Ver-
fügung. Bis zu 99 Zeichen pro Taste lassen sich belegen.
^<C>
^<BREAK> Beenden einer Befehlsausführung. Dies ist zum Beispiel
nützlich, wenn Sie sich entschließen das FIND-Kommando
doch nicht aufzurufen, obwohl Sie schon mitten in der
Eingabe eines Suchtextes sind.
Diese Tasten funktionieren alle auch im Kommandomodus.
6. Befehle
Aus dem Kommandomodus können die einzelnen Befehle durch Eingabe ihres
Anfangsbuchstabens gestartet werden.
Viele Befehle benutzen einen Zähler, um automatisch mehrfach abzulaufen.
Diese Zahl wird dazu immer vor dem Aufruf des Befehls vom Kommandomodus
aus eingegeben. Um den angezeigten Zähler zu löschen ohne einen Befehl
auszuführen kann die <ESC> Taste benutzt werden.
In der folgenden Befehlsliste deutet die Schreibweise <Zähler> darauf
hin, daß der Befehl mehrfach ablaufen kann, wenn zuvor eine Zahl einge-
geben wurde.
Insert
Der Insert-Befehl wird benutzt, um den Editor in den Eingabemodus zu
schalten. Jetzt kann Text eingegeben werden. Eventuell schon vorhandener
Text wird dabei zu Seite geschoben. Die Cursortasten sind selbstver-
ständlich aktiv, auch dürfen über die Funktionstasten Makros aufgerufen
werden. Wenn die <INS> Taste gedrückt wird, wechselt der Editor in den
Exchange-Modus.
Mit <ESC> oder ^<C> wird der Insert-Modus verlassen.
Xchange
Der Exchange-Modus ist vergleichbar mit dem Insert-Modus, lediglich wird
hier der vorhandene Text durch Neueingaben überschrieben.
Die einzigen Zeichen die nicht überschrieben werden sind Returns. Einga-
ben am Zeilenende werden also (wie im Insert-Modus) angefügt.
Buffer
Der Buffer-Befehl wird dazu benutzt einen Textblock in den Copy-Buffer
zu kopieren. Dieser Copy-Buffer ist ein interner Speicher der dazu be-
nutzt wird, den letzten mit Buffer markierten oder Delete gelöschten
Textblock zu halten. Um den Buffer-Befehl zu benutzen, muß zuerst der
Cursor an den Anfang des gewünschten Textblocks bewegt werden. Dann
tippe man 'B', wie Buffer. Das Zeichen unter dem Cursor wird nun tem-
porär durch ein '+' überschrieben, um den Anfang des Textblocks zu mar-
kieren.
Die Befehlsliste verschwindet nun vom Schirm und es erscheint folgende
Anzeige:
Buffer:<Cursor keys>, Find -find Jump Again, <B> to buffer, <CTRL-C> abort
Nun muß der Cursor zum Ende des Blocks bewegt werden. Dies kann zum
einen mit den Cursortasten geschehen. Es ist aber auch möglich die Be-
fehle 'Find' , '-find' , 'Jump' oder 'Again' zu benutzen. Sie dürfen so-
gar mit einem Zähler eingegeben werden.
Wenn der Cursor sich am gewünschten Blockende befindet drücke man die
<B> Taste erneut, um den Buffer-Befehl abzuschließen. Nun wird der Text
in den Copy-Buffer gespeichert. Der vorige Inhalt des Copy-Buffers geht
verloren.
Delete
Der Delete-Befehl löscht einen Textblock. Der gelöschte Text wird in den
Copy-Buffer gebracht. Die Benutzung von Delete ist genauso wie die des
Buffer-Befehls.
<Zähler> Copy
Der Inhalt des Copy-Buffers wird an der aktuellen Cursorposition in den
Text eingefügt. Falls zuvor eine Zahl eingetippt wurde, setzt MaD-Edit
den Text entsprechend häufig ein. Der Copy-Buffer wird duch den Copy-Be-
fehl nicht verändert.
<Zähler> Find
Der Find-Befehl wird benutzt um das nächste Auftreten eines bestimmten
Suchtextes zu finden. Die Suche geht von der Cursorposition bis zum Tex-
tende. Nach dem Aufruf des Befehls durch die Taste <F>fragt MaD-Edit
zunächst nach einem Suchtext. Der zuletzt bei einem 'Find' , '-find'
oder 'Replace' Befehl eingegebene Suchtext erscheint erneut. Er kann
übernommen, mit <BS> geändert oder mit <ESC> gelöscht werden.
^<C> bricht den Find-Befehl ab.
Falls der Suchtext nicht gefunden wird erscheint die Meldung 'Can't find
...'. Drücken Sie dann eine beliebige Taste zur Bestätigung. Der Cursor
verändert seinen Standort nicht.
Bei erfolgreicher Suche befindet sich der Cursor auf dem ersten Zeichen
des Suchtextes.
Wahlweise kann ein Zähler vor dem Find-Befehl eingegeben werden. Es wird
dann entsprechend oft nach dem Text gesucht, bevor der Befehl beendet
ist. Beispielsweise sucht
3 F hello <RETURN>
nach dem dritten Auftreten des Textes 'hello' ab Cursorposition.
<Zähler> -find
Der -find-Befehl arbeitet entsprechend dem Find-Befehl, nur daß der Text
jetzt rückwärts von der Cursorposition bis zum Dateianfang durchsucht
wird. Auch hier ist die Angabe eines Zählers möglich.
<Zähler> Replace
Mit dem Replace-Befehl kann man einen bestimmten Text suchen, und an-
schließend automatisch durch einen anderen ersetzen lassen. Dieser Be-
fehl benutzt denselben Suchtext wie 'Find' und '-find'. Nach der Eingabe
des Suchtextes wird der Ersetzungstext abgefragt. Der Editor findet dann
das ab Cursorposition nächste Auftreten des Suchtextes, und ersetzt die-
sen entsprechend.
Wenn der Text nicht gefunden werden konnte erfolgt eine Fehleranzeige.
Mit dem optionalen Zähler kann gesteuert werden, wie oft das Kommando
ausgeführt wird.
<Zähler> Again
Der Again-Befehl wiederholt die jeweils letzte 'Find' , '-find' , oder
'Replace' Aktion, ohne irgendwelche Abfragen zu machen. Auch dieser Be-
fehl kann mehrfach über einen Zähler ausgeführt werden.
Load
Mit dem Load-Befehl wird ein neuer Text in den Speicher geladen. Falls
am alten Text Änderungen vorgenommen wurden, die noch nicht abgespei-
chert sind, weist MaD-Edit darauf hin. Es erscheint dann der Text:
Load: File changed. Save ? (y/n):
Durch Eingabe von <Y> oder <J> wird der alte Text gesichert. An-
schließend wird nach dem Namen der neuen Datei gefragt. Der bisherige
Dateiname wird dort standardmäßig vorgegeben, kann aber mit <ESC> ge-
löscht werden.
^<C> darf wiederum benutzt werden, um den Befehl vorzeitig abzubrechen.
Dann bleibt der alte Text im Speicher erhalten.
Write
Das Gegenstück zu 'Load'. Der Text im Speicher wird zur Platte/Diskette
übertragen. Der Dateiname wird zuvor abgefragt und kann geändert werden.
Get
Der Get-Befehl wird benutzt, um den Inhalt einer anderen Datei in den
Text ab Cursorposition einzufügen. Dazu muß der Cursor zunächst auf den
gewünschten Einfüge-Punkt bewegt werden. Dann ist die Taste <G> zu drü-
cken. Der Get-Befehl fragt jetzt nach einem Dateinamen. Die Datei wird
nun gelesen und in den Text eingefügt.
Falls sie nicht existiert wird eine Fehlermeldung ausgegeben.
Put
Das Gegenstück zum Get-Befehl. Ein Block des Textes im Speicher wird in
eine seperate Datei geschrieben. Der Cursor muß wieder zunächst auf den
Anfang des Blocks bewegt werden, danach ist die Taste <P> zu drücken.
Jetzt erscheint folgende Befehlszeile:
Put: <Cursor keys>, Find -find Jump Again, <P> to put, <CTRL-C> abort
Genau wie beim Buffer-Befehl kann das Ende des Textblocks jetzt über die
Pfeiltasten oder mit einem Suchbefehl angefahren werden. Die Eingabe ei-
nes Zählers für die Suche ist erlaubt, auch das Löschen des Zählers mit
<ESC>. Durch die Tastenkombination ^<C> kann dieser Befehl (wie immer)
abgebrochen werden.
Wenn der Cursor auf der gewünschten Position steht drücken Sie die <P>
Taste erneut, um den Befehl abzuschließen.
MaD-Edit fragt dann nach dem Dateinamen. Dieser ist mit <RETURN> zu
bestätigen. Danach wird der Textblock gespeichert.
Quit
Der Quit-Befehl beendet die Editor-Sitzung. Falls der Text im Speicher
geändert, aber noch nicht abgespeichert wurde wird dies angezeigt:
Quit: File changed. Save? (y/n):
Durch Eingabe von <Y> oder <J> wird der Text gespeichert. ^<C> bricht
den Quit-Befehl an dieser Stelle ab.
Tag
Der Tag-Befehl wird benutzt, um bis zu vier (unsichtbare) Markierungen
in den Text einzubringen. Die so markierten Textstellen können an-
schließend mit dem Jump-Befehl (siehe unten) angefahren werden. Beim
Einfügen oder Löschen von Text verschieben sich die Markierungen ent-
sprechend. Nach Aufruf von <T> erscheint folgendes Menü:
Tag: A, B, C, D
Nun kann durch Tippen des entsprechenden Buchstabens eine Markierung an
der Cursorposition gesetzt werden.
<Zähler> Jump
Der Jump-Befehl kann auf zwei Arten wirken. Wenn vor Aufruf ein Zähler
eingegeben wurde, springt der Cursor auf den Anfang der entsprechenden
Zeile des Textes. Die Zeilen werden dazu (beginnend am Textanfang) von 1
an fortlaufend durchgezählt.
Ohne Eingabe eines Zählers erscheint nach Drücken von <J> das Menü:
Jump tag: A, B, C, D
Der Editor erwartet nun einen Buchstaben von <A> bis <D>, um den Cursor
an das entsprechende Tag zu bewegen.
Setup
Mit dem Setup werden verschiedene Voreinstellungen des Editors verän-
dert. Das Befehlsmenü verschwindet dazu nach dem Drücken von <S>, und es
erscheint:
Setup: Tab Indent Video Save-setup Auto-insert Head-col text-Col Extern
----- 4 Yes 80x25 No No 07 07
Die einzelnen Optionen lassen sich jetzt durch Eingabe des jeweils groß
geschriebenen Buchstabens (T,I,V,S,A,H,C,E) verändern. Um den Setup-Mo-
dus zu verlassen drücke man <ESC> oder ^<C>. Die Veränderungen werden
jetzt sofort sichtbar.
Tab: Die Tab-Angabe steuert die Expansion von Tabulator-Zeichen im
Text. Normalerweise steht dieser Wert auf acht. Er kann durch
mehrfaches Tippen von <T> zwischen 3 und 8 variiert werden.
Indent: Diese Option bestimmt, ob Tabulatorzeichen vom Anfang der vor-
herigen Zeile beim Drücken von <RETURN> an den Anfang der
neuen Zeile kopiert werden. Damit wird ein linksbündiges Ein-
geben von eingerücktem Text möglich, ohne daß nach einem Zei-
lenwechsel entsprechend häufig auf <TAB> getippt werden müßte.
Außerdem wird ein spezieller Modus für 'C' - Programmierer
wirksam:
Falls direkt nach '{' die <RETURN> Taste betätigt wird, rückt
die nachfolgende Zeile um einen weiteren Tab ein.
Falls direkt nach '}' die <RETURN> Taste betätigt wird und das
Zeichen vor '}' ein Tab ist, wird dieser Tab gelöscht, die
Klammer also zurückgesetzt.
Beispiel:
main()
{
int i;
for (i=1;i<10;i++) {
printf("hello, world\n");
}
}
Bei der Eingabe des Beispiels wurde die <TAB> Taste nicht be-
tätigt! Alle Einrückungen stammen von MaD-Edit.
Video: Im Moment werden vier Auflösungen unterstützt: 80x25 auf CGA,
Hercules, EGA und VGA. 80x50 auf EGA und VGA. 100x40 und
132x44 auf VGA Karten mit ET4000 Chip.
Save-setup: Dieser Schalter steuert die automatische Statusspeicher-
ung beim Verlassen des Editors mit 'Quit'. Wenn er einge-
schaltet ist, erfolgt die Speicherung in der Datei 'ME.SET' im
aktuellen Unterverzeichnis. Folgende Informationen werden dann
bei einem nachfolgenden Aufruf des Editors restauriert:
- Alle geladenen Dateien (bis zu drei)
- Der Bearbeitungsmodus jeder Datei (Text oder Dual)
- Die Position des Textes auf dem Bildschirm
- Die Position des Cursors im Text
- Die vier Sprungziele (' Tag') für jede Datei
- Die Funktionstastenbelegung (' Makro')
- Der ' Find', '-find' und 'Replace' Text
- Die externen Kommandozeilen (' Extern')
- Alle Setup-Einstellungen
Es wird ein 'ME.SET' pro Unterverzeichnis erstellt. Soll stattdessen nur
eine globale Setup-Datei verwendet werden, so benutzt man den Befehl
APPEND (in MS-DOS) um einen Pfad auf ein entsprechendes Verzeichnis zu
erstellen, und speichert dort die globale 'ME.SET'.
N.B.: Die alten Setup-Dateien sind mit der Version 1.40 nicht kompati-
bel. Bitte von der Platte löschen.
Auto-insert: Die 'Auto-Insert' Funktion zwingt den Editor nach der
Ausführung jedes Befehls sofort wieder in den Insert-Modus zu-
rück. Daher kann immer nur ein Befehl auf einmal eingegeben
werden. Für den nächsten Befehl muß der Insert-Modus erst wie-
der mit <ESC> verlassen werden.
Head-col: Hier wird die Farbe der beiden Kopfzeilen angegeben. Sie kann
durch Drücken der Taste <H> schrittweise zwischen 01h und 7Fh
erhöht werden. Die Taste <h> vermindert den Farbcode.
text-Col: Mit den Tasten <C> und <c> wird entsprechend die Farbe des
Textes verändert.
Extern: MaD-Edit verfügt über die Möglichkeit externe Befehle ablau-
fen zu lassen, ohne den Editor zu beenden. Dies ist besonders
nützlich beim Schreiben von Programmen: Compilieren, Linken
und Austesten können aus dem Editor heraus vorgenommen werden.
MaD-Edit selbst belegt während der Ausführung nur etwa 60 KB
Speicher für sich.
Bis zu drei Befehle dürfen eingegeben werden, die dann nach-
einander zur Ausführung kommen. Dabei wird überwacht, ob ein
Programm mit einem Fehler beendet wurde (z.B. der Compiler),
und die weitere Ausführung der anderen Programme dann unter-
bunden.
Die Aufrufzeilen der (bis zu drei) Programme können mit dieser
Option des Setup-Menüs eingegeben werden. Für den Programm-
start existiert ein eigener Befehl (s.u.).
N.B.: Batch-Dateien und residente Befehle müssen innerhalb ei-
ner Kopie des 'COMMAND.COM' ablaufen (Beispiel: "COMMAND /C
DIR"). Programme können direkt gestartet werden (Beispiel:
"CHKDSK"). Das gestartete Programm (auch 'COMMAND.COM') muß
natürlich im DOS-Suchpfad stehen, sonst kommt "ERROR: File
not found".
Other
Der Other-Befehl wird benutzt, um zwischen der Bearbeitung der bis zu
drei möglichen Texte umzuschalten. Schrittweise wird jeweils von einem
zum nächsten Text gewechselt. Um vom zweiten Text wieder auf den ersten
zurückzuschalten ist also zweimal <O> zu betätigen.
Makro
Alle zehn Funktionstasten (F1 - F10) stehen zur freien Programmierung
zur Verfügung. Bis zu 99 Tastenanschläge pro Taste können aufgenommen
werden, und zwar auch Steuerzeichen (z.B. <HOME> oder <DELETE>). Der Ma-
kro-Befehl wird zur Neubelegung einer Taste benutzt. Das Abrufen eines
Makros geschieht danach einfach durch Drücken der entsprechenden Funkti-
onstaste.
Nach Betätigung von <M> fragt MaD-Edit nach, welche Taste programmiert
werden soll (F1 - F10). Wenn eine Funktionstaste ausgewählt wurde be-
ginnt die Aufnahme (der eventuelle alte Inhalt wird gelöscht).
Jetzt können die gewünschten Tastenanschläge eingegeben werden.
Um die Aufnahme zu beenden ist die Funktionstaste ein weiteres Mal zu
betätigen.
Ein Makro kann keinen Aufruf eines anderen Makro beinhalten. Beim Ver-
such eine andere Funktionstaste zu aktivieren wird die Aufnahme ge-
stoppt.
Execute
Mit diesem Befehl können bis zu drei externe Kommandos ablaufen. Falls
sich die Texte im Speicher geändert haben sollten, erfolgt vorher (ähn-
lich wie beim Quit-Befehl) eine Abfrage:
Execute: File changed. Save ? (y/n):
Mit <J> oder <Y> wird die Abspeicherung veranlasst, ^<C> oder ^<BREAK>
bricht den Befehl an dieser Stelle ab.
Nun laufen die Befehle ab, welche zuvor im Setup-Menü eingegeben wurden
(siehe oben). Anschließend restauriert der Editor seinen alten Stand
vollständig.
Schließlich gibt es noch zwei weitere Kommandos. Sie stehen nicht in der
Befehlsliste, können aber nützlich sein:
#
Die aktuelle Zeilennummer wird ausgegeben.
{}()[]
Wenn sich der Cursor auf einer linken Klammer befindet und eines von
diesen Zeichen eingegeben wird, springt er auf die korrespondierende
rechte Klammer nach unten. Analog findet er auch die (oberhalb liegende)
linke Klammer wenn er sich auf einer rechten Klammer befindet.
Dies ist nützlich, um bei kompizierten Ausdrücken zusammengehörige Klam-
merpaare zu finden.
Allerdings erkennen diese Befehle keine Kommentare im Programmtext. Ein-
zelne Klammern in Kommentarzeilen bringen die Suchroutine durcheinander.
7. Der Dual-Modus
MaD-Edit kann auch als leistungsfähiger Hex-Code Editor verwendet wer-
den. Zum Umschalten dient der Befehl dUal (Taste <U>). Der Cursor ver-
ändert seine Position gegenüber dem Textmodus nicht. Man kann also auch
ASCII Texte im Hexmodus betrachten und dann wieder zum Textmodus zurück-
schalten.
Beim Laden einer Datei versucht ME selbstständig herauszufinden, ob der
Dual- oder der Textmodus zur Bearbeitung besser geeignet wären.
Wird der Dateiname ohne Extension eingegeben, so erkennt ME automatisch
".EXE",".COM" und ".OVL" Files und bearbeitet diese immer im Dual-Modus.
Bei allen anderen Dateien erfolgt die automatische Umschaltung, falls
Zeilen mit mehr als 256 Zeichen enthalten sind (dies wird beim Laden
abgeprüft).
Unabhängig von dieser Vorgabe läßt sich aber jede Datei in beiden Modi
bearbeiten (einfach mit <U> umschalten).
Eine Datei wird folgendermaßen auf dem Bildschirm dargestellt:
006AD0(27344): 49 6D 20 44 75 61 6C 2D 4D 6F 64 75 73 20 66 75 Im Dual-Modus fu
006AE0(27360): 6E 6B 74 69 6F 6E 69 65 72 65 6E 20 64 69 65 20 nktionieren die
...
------!----- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ----------------
! ! ! < HEX - Darstellung > ! !<ASCII-Darst.>!
! ! !
! ! !- 16 aufeinanderfolgende Datenbytes
! !- Adresse des ersten Zeichens in Dezimal (nur bis 65536)
!- Adresse des ersten Zeichens in Hexadezimal
Die Adressen zählen ab 0 bei Dateianfang. Die Dezimale Darstellung ist
immer Modulo 65536 (das Byte 65536 wird also wieder als 0 angezeigt).
Im Dual-Modus funktionieren die meisten Befehle wie bereits für den
Text-Modus beschrieben. Zusätzlich kann der Cursor mit <TAB> zwischen
dem HEX-Bereich und dem ASCII-Bereich umgeschaltet werden.
Dies hat auch Einfluß auf den Find Befehl. Je nach Cursorposition wird
ein ASCII-Text oder eine Gruppe von HEX-Paaren als Suchtext abgefragt.
Achtung: der Find-Befehl kann nicht nach NULL-Bytes (00h) suchen!
Der Exchange Befehl zur Eingabe von Zeichen unterscheidet ebenfalls zwi-
schen ASCII und HEX-Modus.
Der Insert-Befehl und die Tasten <DEL> bzw. <BACKSPACE> funktionieren im
Dual-Modus nicht, da es meistens nicht sehr sinnvoll ist eine Binärdatei
in ihrer Länge zu verändern.
Soll dies trotzdem geschehen, so kann mittels Delete, Copy und Buffer
Platz geschaffen werden.
Der Print-Befehl druckt einen Hex-Dump.
Das wars.
Anregungen und (konstruktive) Kritik sind immer willkommen.
Viel Spaß und vy 73, DL6DCM
Martin Doppelbauer.
Verbesserungen in der Version 1.2 von MaD-Edit
================================================
von DL6DCM / Martin Doppelbauer, 20.05.90, 09.06.90, 10.06.90
- Der Zähler wird bei Auto-Insert Modus nicht gelöscht.
- Ein Zähler über 32767 ist möglich.
- Alter Text bei Load/Find etc. verschwindet bei jeder anderen Taste als INS,
BS,RET, END, HOME oder der Leertaste.
(bisher blieb der Text bei Sonderzeichen wie '$%&' auch stehen)
- Während langer Such/Ersetz/Sprungoperationen wird eine Meldung gezeigt.
- REPLACE geht *wesentlich* schneller als zuvor.
- In der Statuszeile wird immer der freie Speicher gezeigt.
- Wildcards als Argumente sind erlaubt (z.B. ME *.c).
- Nach dem Laden mehrerer Dateien steht der Namen der ersten (und nicht der
letzten wie bisher) in der Statuszeile.
- Die automatisch gefundenen Extensions lauten jetzt:
.C .H .ASM .BAT .FOR .PRG .PAS .SYS .BAS .TXT
- Mit ? ist ein Hilfsmenü verfügbar
- Der Befehl Half ermöglicht die gleichzeitige Bearbeitung von zwei Dateien.
Dazu wird der Bildschirm in der Mitte geteilt. Im oberen Fenster erscheint
die aktuelle Datei, im unteren jeweils die nächste in der Other Reihenfolge.
Mit O kann zwischen den Fenstern umgeschaltet werden. Ein Zugriff auf die
dritte Datei ist im Halfmodus nicht möglich. Ausschalten des Halfmodus durch
erneutes Drücken von H. Besonders schön wird das mit EGA oder VGA Karten
im 80x43 Modus (siehe SETUP)
- Im Auto-Insert-Modus bleibt die Zeilennummer nach einem # Befehl stehen
- Beim Verlassen des Editor wurde manchmal ein *leerer* Dateibereich zum
Speichern abgefragt: File changed - Save ?. Dies unterbleibt jetzt.
- Bei zwei direkt aufeinanderfolgenden Line-Feeds (0Ah 0Ah) kam die Anzeige-
routine durcheinander. Der Fehler ist behoben.
- Zwei neue Videomodi für VGA-Karten sind hinzugekommen (Setup Video).
Jetzt gibt es also : 80x25 , 80x50 , 100x40 , 132x44
- Der Befehl <N> (für Print (das P war schon belegt...)) druckt einen
Bereich von Zeilen aus. Anschließend erfolgt immer ein Form-Feed, so daß
auch Besitzer von Laser-Druckern das Ergebnis bewundern können.
Verbesserungen in der Version 1.3 von MaD-Edit
================================================
von DL6DCM / Martin Doppelbauer, 14.09.93
- Die Standardfarben wurden geändert.
- Der Tabulatorabstand ist jetzt auf 8 statt 4 voreingestellt.
- Eine Spaltenanzeige am Anfang der zweiten Zeile ist hinzugekommen.
- Das Ende der Zeile wird am LF festgemacht. CRs werden ignoriert. Auch die
Druckroutine ingnoriert CRs und sendet für jedes LF eine CRLF Kombination
an den Drucker. Dadurch können Unix Textdateien problemlos bearbeitet und
gedruckt werden.
- Beim Halfmodus entfällt die Zeile mit der Trennlinie (da Farbwahl den Unter-
schied bereits deutlich macht). Daher eine Zeile mehr für den Text.
- Die Extensions .ME und .DAT wurden in die Automatikliste neu aufgenommen.
Verbesserungen in der Version 1.4 von MaD-Edit
================================================
von DL6DCM / Martin Doppelbauer, 17.09.93
- Einige Fehler bei der Benutzung von Copy, Buffer, Delete, Get, Put im
Zusammenhang mit dem Zeilenende (CRLF bzw. LF) wurden beseitigt.
- Der Dual-Modus wurde neu hinzugefügt.
- Die Extensions .COM .EXE. .OVL wurden in die Automatische Erkennung auf-
genommen und schalten sofort in den Dual-Modus.
- Im Setup-Menü kann mit <h> und <c> die Farbnummer jetzt auch zurückge-
schaltet werden (mit <H> und <C> gehts wie gehabt vorwärts).
- Falls der Execute Befehl nicht ausgeführt werden konnte wird eine aus-
sagekräftige Fehlermeldung angezeigt.
Verbesserungen in der Version 1.41
==================================
von DL6DCM / Martin Doppelbauer, 15.10.93
- Falls im Exchange-Modus die RETURN-Taste gedrückt wurde, konnte die
Reihenfolge der CRLFs durcheinandergeraten. Fehler beseitigt.